package com.xjc.business.service;

import com.xjc.business.entity.domain.CheckBedBatch;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xjc.business.entity.po.buildadmin.*;
import com.xjc.business.entity.vo.buildadmin.BuildDetailsVo;
import com.xjc.business.entity.vo.buildadmin.CheckBedNotAddRoomVo;
import com.xjc.business.entity.vo.buildadmin.CheckBedVo;
import com.xjc.system.result.Result;

import java.util.List;

/**
* @author root
* @description 针对表【check_bed_batch(查寝批次)】的数据库操作Service
* @createDate 2025-03-08 17:07:50
*/
public interface CheckBedBatchService extends IService<CheckBedBatch> {

    /**
     * 获取当前检查宿舍信息
     * @param id 宿管id
     * @return
     */
    Result<CheckBedVo> getCurrentCheckBed(Integer id);

    /**
     * 添加检查宿舍信息
     * @param checkBedPo 检查宿舍信息
     * @return
     */
    Result<String> addCheckBed(CheckBedPo checkBedPo);

    /**
     * 添加宿舍项
     * @param checkBedRoomPo 宿舍项信息
     * @return
     */
    Result<String> addCheckBedRoom(CheckBedRoomPo checkBedRoomPo);

    /**
     * 删除检查宿舍信息
     * @param id 检查宿舍信息id
     * @return
     */
    Result<String> deleteCheckBed(Integer id);

    /**
     * 删除宿舍项
     * @return
     */
    Result<String> deleteCheckBedRoom(Integer batchId,Integer roomId);

    /**
     * 添加宿舍项学生
     * @return
     */
    Result<String> addCheckBedStudent(CheckBedStudentPo checkBedStudentPo);

    /**
     * 删除宿舍项学生
     * @param checkBedDeleteStudentPo 宿舍项学生
     * @return
     */
    Result<String> deleteCheckBedStudent(Integer batchId,Integer id);

    /**
     * 获取当前宿舍楼宿舍列表
     * @param buildingId 宿舍id
     * @return
     */
    Result<List<CheckBedNotAddRoomVo>> getBuildDormitoryList(Integer buildingId);

    /**
     * 宿舍检查完成
     * @param id 宿舍检查id
     * @return
     */
    Result<String> finishCheckBed(Integer id);

    /**
     * 上传检查结果
     * @param id 宿舍检查id
     * @return
     */
    Result<String> reportCheckBedResult(Integer id);

    /**
     * 获取宿舍检查历史记录
     * @param id 宿管id
     * @return
     */
    Result<List<CheckBedVo>> getCheckBedHistoryList(Integer id);
}
